/*
 * Created on 2008-8-26
 *
 * TODO
 */
package jacky.lanlan.song.junitx.v4.atunit.spring;

import jacky.lanlan.song.junitx.v4.atunit.core.Container;

import java.lang.reflect.Field;
import java.util.Map;

import org.junit.internal.runners.InitializationError;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;


/**
 * 用 Spring 完成依赖注入的 {@link IoC}。
 * 
 * @author Jacky.Song
 */
public class SpringContainer implements Container {

	private class Spring extends SpringJUnit4ClassRunner{
		public Spring(Class<?> clazz) throws InitializationError {
			super(clazz);
		}
		
		@Override
		protected Object createTest() throws Exception {
			return super.createTest();
		}
	}
	
	public Object createTest(Class<?> testClass, Map<Field, Object> fieldValues) throws Exception {
		// 不用fieldValues，因为这里面应该都是被Mock的Field，留着在AtUnit里面到最后处理null Field的时候再赋值
		return new Spring(testClass).createTest();
	}

}
